//螺旋矩阵算法
//关键点是区间变量不变性，都是左闭右开区间，进行了统一，在使用的时候就不会非常乱
import java.util.Arrays;
import java.util.Scanner;
class Form{
    public int solution(int len){//len表示生成数量
        int[][] vc= new int[len][len];
        int loop = len /2;//表示需要生成几个环
        int startx = 0;//表示开始的x位置
        int starty = 0;//表示开始的y位置
        int count = 1;//为空位进行复制
        int offset = 1;//控制循环的次数
        int mid = len/2;//如果为奇数的话，就会产生一个中心元素
        while(loop>0){
            int i = startx;
            int j =starty;
            for(;j<len-offset;j++){
                vc[i][j] = count++;
            }
            for(;i<len-offset;i++){
                vc[i][j] = count++;
            }
            for(;j>starty;j--){
                vc[i][j] = count++;
            }
            for(;i>startx;i--){
                vc[i][j] = count++;
            }
            starty++;
            startx++;
            offset++;
            loop--;//下一个环
        }
        if(mid%2!=0){
            vc[mid][mid] = count++;
        }
        System.out.println(Arrays.deepToString(vc));
        return 0;
    }
}
public class spiralMatrix {
    public static void main(String[] args) {
        var matrix = new Form();
        var scanner = new Scanner(System.in);
        int len = scanner.nextInt();
        matrix.solution(len);
    }
}
